- 
                Notifications
    You must be signed in to change notification settings 
- Fork 327
FIX: ISXB-1674 - Input actions asset not converted correctly when upgrading from 1.14.1 (Regression) #2244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIX: ISXB-1674 - Input actions asset not converted correctly when upgrading from 1.14.1 (Regression) #2244
Conversation
| Codecov ReportAttention: Patch coverage is  @@             Coverage Diff             @@
##           develop    #2244      +/-   ##
===========================================
+ Coverage    76.70%   76.86%   +0.15%     
===========================================
  Files          465      476      +11     
  Lines        87919    88671     +752     
===========================================
+ Hits         67442    68153     +711     
- Misses       20477    20518      +41     Flags with carried forward coverage won't be shown. Click here to find out more. 
 ... and 23 files with indirect coverage changes 🚀 New features to boost your workflow:
 | 
| I noticed this PR title was incorrect so I changed it to remove that failure. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for looking into this, my main comment at this review round is to add inline comments explaining why we need to do the different parts since it is not clear to me from the code. I think this is important to make sure its maintainable.
        
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a few things you mention in the PR description that I don't understand why they are needed:
Preserve original tokens and only touch the enum values
Formatting survive unchanged
I don't understand why this would be a requirement, I believe that if the user uses our editor to edit the asset that was written manually and has custom formatting that will overwrite the users formatting. Trying to parse json with string replaces, regex is a losing battle, the only way this won't be brittle is by parsing it, converting the data and serializing it back to json.
Avoid whole string rewrites, which previously caused mismatches between what the editor expected
As above, I don't understand why do we want to avoid string rewrites, my current thinking is that we didnt catch this for 2 reasons, we are not reusing the parsing and serializing funcitons that is used elsewhere, and we didnt test this case.
I believe the proper way of moving forward here is that we use the exact same code to parse and serialize json for this type that is used elsewhere in the editor, if we try to do anything different we are creating an opportunity for a bug to be hidden here.
        
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as @LeoUnity, let's complement the test by making sure it parses correctly (logically) and then we can conclude this I believe.
        
          
                Packages/com.unity.inputsystem/InputSystem/Utilities/NameAndParameters.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                Packages/com.unity.inputsystem/InputSystem/Utilities/NameAndParameters.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                .../com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/NameAndParametersListView.cs
              
                Outdated
          
            Show resolved
            Hide resolved
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing an automated test case that reproduces the issue we are trying to fix here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR looks good, there are a few failing CI jobs.
| The Android jobs are broken and stuck - see https://unity.slack.com/archives/C94RMJJ5T/p1760644095487229 Follow that thread to see when Lukas has a fix for the issue. Please refrain from rerunning the tests until the fix is available and you have it merged in this branch. | 
| Merged develop into this branch to get critical CI fix from #2260. Hope this doesn't caused any inconvenience for you. | 
| Added @Pauliusd01 for QA approval | 
| Did not forget this one, looking at it today/tomorrow | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| We can bump the version so that the migration will be invoked again. Will wait for Leo and Hakan’s suggestion.
Get Outlook for iOS<https://aka.ms/o0ukef>… ________________________________
From: Paulius Dervinis ***@***.***>
Sent: Friday, October 31, 2025 2:16:01 PM
To: Unity-Technologies/InputSystem ***@***.***>
Cc: Aswin Raj Gopal ***@***.***>; Author ***@***.***>
Subject: Re: [Unity-Technologies/InputSystem] FIX: ISXB-1674 - Input actions asset not converted correctly when upgrading from 1.14.1 (Regression) (PR #2244)
CAUTION: This email originated from outside the organization. Do not click on links or open any attachment unless you recognize the source of this email, trust the sender and know the content is safe.
@Pauliusd01 requested changes on this pull request.
This doesn't seem to fix assets that were already broken by the regression. Is there a way you can fix them as well? If not is there a workaround we can offer? I tried downgrading and then upgrading back to your version but that doesn't fix it.
@ekcoh<https://github.com/ekcoh> @LeoUnity<https://github.com/LeoUnity> do you have any opinions about this?
—
Reply to this email directly, view it on GitHub<#2244 (review)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AQOKBA6GHRXJL6EB3OQBGVD32MOUTAVCNFSM6AAAAACHPDSSH6VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTIMBTGA4DGMJWGM>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
DISCLAIMER: The information transmitted, including any attachments, is intended only for the person or entity to which it is addressed and contains confidential and/or privileged material. Sharing this message or its contents with a third party without prior written consent is strictly prohibited. If you receive this email by mistake, please advise the sender and delete it immediately. Email transmission cannot be guaranteed to be secure or virus-free as information could be intercepted, corrupted, lost or destroyed as a result of the transmission process. Therefore, you should check the email for threats with proper software, as the Company does not accept liability for any damage inflicted by viewing the content of this email. Views or opinions presented in this email are solely those of the author and do not necessarily represent those of the Company. Through this email, no employee or agent is authorized to conclude/commit any new or incidental terms, which are not part of the original contract with any client or vendor, other than by way of duly executed and signed amendment contract between the parties in accordance with the agreed protocol of the contract. Coforge Limited and its related entities consider the privacy of its clients to be of utmost importance and work to protect it. Please be aware that the Company monitors email communications through our networks for compliance purposes. The Privacy Policy of the Company can be accessed from our website www.coforge.com. | 
| I didn't consider that, I'd say let's land this as it is and do a release ASAP to reduce the window in which users can end up with a corrupted asset. There is something we could do, but if nobody complains I'm not sure it's worth it. Worst case scenario users can edit the file manually and correct the ";" to ",". | 
| 
 Okay that does work, I'll mention this as a known issue on the next release | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, tried upgrading from an older version to this one and checked basic input action editor and player functionality.
Description
Bug: https://jira.unity3d.com/browse/ISXB-1674
Port: 1.14.X
Preserve original tokens and only touch the enum values. That means processor names, order, legacy processors, and formatting survive unchanged so the editor no longer collapses or marks them “Obsolete”.
Avoid whole string rewrites, which previously caused mismatches between what the editor expected and what was written back and only assign a new processor string if something actually changed.
Testing status & QA
Verified manually with the attached repro project.
Overall Product Risks
Complexity: 0
Halo Effect: 0
Comments to reviewers
Checklist
Before review:
Changed,Fixed,Addedsections.Area_CanDoX,Area_CanDoX_EvenIfYIsTheCase,Area_WhenIDoX_AndYHappens_ThisIsTheResult.During merge:
NEW: ___.FIX: ___.DOCS: ___.CHANGE: ___.RELEASE: 1.1.0-preview.3.After merge: